<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="redis" uri="http://www.shopjsp.com/redisTag/functions" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="basePath" value="${redis:getSysConfig('base_path_back')}"/>

<style type="text/css">
	ul li{background: #f2f2f2;border-radius:2px 0px 0px 0px;}
</style>
<script type="text/javascript">
    /**
     * 自定义验证规则
     */
    function validateForm(){
        form.bootstrapValidator({
            message: "无效的值",
            feedbackIcons: {
                valid: "glyphicon glyphicon-ok",
                invalid: "glyphicon glyphicon-remove",
                validating: "glyphicon glyphicon-refresh"
            },
            fields: {
                imageInfo_1: {
                    validators: {
                        notEmpty: {message: "请上传图片"},
                        file:{maxSize: 1024*1024, message: '请上传一张最大不超过1M的jpg/png/gif图片文件'}
                    }
                },
                category_level1: {
                    validators: {
                        notEmpty: {message: "请选择商品一级分类"}
                    }
                },
				category_level2: {
                    validators: {
                        notEmpty: {message: "请选择商品二级分类"}
                    }
                },
				category_level3: {
                    validators: {
                        notEmpty: {message: "请选择商品三级分类"}
                    }
                },
                shopProCategoryId: {
                    validators: {
                        notEmpty: {message: "请选择店铺分类"}
                    }
                },
                deliveryAddressProvince: {
                    validators: {
                        notEmpty: {message: "请选择省级发货地"}
                    }
                },
                deliveryAddressCities: {
                    validators: {
                        notEmpty: {message: "请选择市级发货地"}
                    }
                },
                brandId: {
                    validators: {
                        notEmpty: {message: "请选择商品品牌"}
                    }
                },
                measuringUnitName: {
                    validators: {
                        notEmpty: {message: "请选择商品计量单位"}
                    }
                },
                productName: {
                    validators: {
                        notEmpty: {message: "商品名称不可为空"},
                        stringLength: {max: 200,message: "商品名称最大长度为200"}
                    }
                },
                productCode: {
                    validators: {
                        notEmpty: {message: "商品编号不可为空"},
                        stringLength: {max: 50,message: "商品编号最大长度为50"},
                        regexp: {
                            regexp: validateUtil.onlyCharAndNumber,
                            message: '商品编号由数字或字母组成'
                        }
                    }
                },
                marketPrice: {
                    validators: {
                        notEmpty: {message: "市场价格不可为空"},
                        regexp: {
                            regexp: validateUtil.money,
                            message: '请输入正确的金额'
                        }
                    }
                },
                salesPrice: {
                    validators: {
                        notEmpty: {message: "销售价格不可为空"},
                        regexp: {
                            regexp: validateUtil.money,
                            message: '请输入正确的金额'
                        }
                    }
                },
                storeNumber: {
                    validators: {
                        notEmpty: {message: "商品库存不可为空"},
                        integer:{message: "商品库存为整数"}
                    }
                },
                upRatio: {
                    validators: {
                        notEmpty: {message: "一级返利比例不可为空"},
                        numeric:{message: "请输入有效的比例值"}
                    }
                },
                secRatio: {
                    validators: {
                        notEmpty: {message: "二级返利比例不可为空"},
                        numeric:{message: "请输入有效的比例值"}
                    }
                },
                thiRatio: {
                    validators: {
                        notEmpty: {message: "三级返利比例不可为空"},
                        numeric:{message: "请输入有效的比例值"}
                    }
                },
               /* giveAwayCoinNumber: {
                    validators: {
                        notEmpty: {message: "赠送金币不可为空"},
                        integer:{message: "赠送金币为整数"}
                    }
                },*/
                weight: {
                    validators: {
                        notEmpty: {message: "商品重量不可为空"},
                        numeric:{message: "商品重量可为小数"}
                    }
                },
                packingSpecifications: {
                    validators: {
                        notEmpty: {message: "包装规格不可为空"}
                    }
                }
            }
        });
    }

    var index=0;//上传商品组图的计数器
    /**已选择的店铺去添加商品信息**/
    function addInfo(shopInfoId,shopName){
        /**1、显示店铺名称并将值放入隐藏域中**/
        $("#addOrEditModalLabel").empty().html("添加商品信息&nbsp;>>&nbsp;<span class='color_001'>"+shopName+"</span>");
        $("#shopInfoId").val(shopInfoId);/**将指定的店铺ID放到添加页面的隐藏域中**/
        /**2、清空隐藏域的值**/
        $("#productTypeId").val("");
        $("#productId").val("");
        $("#specifications").val("");
        /**3、重置表单**/
        resetAddForm();
        /**4、手动清空表单其他相关信息**/
        /**4.1、释放因修改冻结的商品分类的选项**/
        $("#category_level1").removeAttr("disabled");
        $("#category_level2").removeAttr("disabled");
        $("#category_level3").removeAttr("disabled");
        /**4.2、重置选项卡为基本信息选中状态**/
        $("#myTab").find("li").removeClass("active");
        $("#basicLi").addClass("active");
        $("#basicTab").addClass("in").addClass("active");
        changeTab('basicTab');
        /**4.3、清空百度编辑器信息**/
        editor.setContent("");
        /**4.4、清空商品组图上传列表信息**/
        $(".productImages").remove();/**清空已经存在的列表**/
        $("#noImgTr").remove();/**清空已经存在的无图片信息**/
        var imgHtml = '<tr id="noImgTr"><td  class="tocenter_td" colspan="5">没有组图信息，请点击左上角“添加图片”</td></tr>';
        $("#productImageTable").append(imgHtml);/**重新追加无图片信息**/
        index=0;/**重置计数器**/
        /**4.5、清空商品扩展属性信息**/
        $("#attrTable").empty();
        var attrHtml = '<tr id="noAttrTr"><td>无商品扩展属性信息，请检查“基本信息”标签中是否已选择商品分类</td></tr>';
        $("#attrTable").append(attrHtml);
        /**4.6、清空商品规格参数信息**/
        $("#totalProdParamTable").empty();
        var paramHtml = '<tr id="noParamTr"><td>无商品规格参数信息，请检查“基本信息”标签中是否已选择商品分类</td></tr>';
        $("#totalProdParamTable").append(paramHtml);
        /**4.7、清空商品组合规格信息**/
        $("#specificationProductTable-title").empty();
        $("#selectedSpecificationValues_0").empty();
        /**5、初始化上传控件**/
        initImageForAdd(1,"sys_shop","image_product",1,800,800);
        /**6、初始化商品一级分类**/
        getSubCategoryListByParentId(0,"category_level1");
        /**清除因修改留下的数据**/
        $("#category_level2").empty().html("<option value=''>请选择</option>");
        $("#category_level3").empty().html("<option value=''>请选择</option>");
        $("#brand_select").empty().html("<option value=''>请选择</option>");
        $("#measuringUnit_select").empty().html("<option value=''>请选择</option>");
        /**7、初始化地区一级分类**/
        getSubAreaListByParentId(0,"deliveryAddressProvince");
        $("#deliveryAddressCities").empty().html("<option value=''>请选择</option>");
        /**8、初始化店铺商品内部分类**/
        getShopProCategoryByShopInfoId();
    }

	<shiro:hasPermission name="back_gotoSelfSupportShopProductListPage_update or back_gotoEnterShopProductListPage_update">
		/** 修改商品信息**/
		function editInfo(){
			/**1、重置选项卡为基本信息选中状态**/
			$("#myTab").find("li").removeClass("active");
			$("#basicLi").addClass("active");
			$("#basicTab").addClass("in").addClass("active");
			changeTab('basicTab');
			$("#addOrEditModalLabel").empty().text("修改商品信息");
			/**2、获取选中行的id**/
			var selectedRow= $("#tt").bootstrapTable('getSelections');
			if(selectedRow.length==1){
				var productId=selectedRow[0].productId;
				$("#btn_edit").attr("data-target","#addOrEditModal");/**选中了记录后才可打开对应的模态框**/
				$.ajax({
					type: "POST",
					dataType: "JSON",
					async:false,
					url: "${basePath}/back/shopProduct/getShopProductAndRelationInfoByProductId.sjson",
					data: {productId:productId},
					success: function(data){
						/**1、初始化商品基本信息，在basic_info.jsp中**/
						initProductInfo(data.productInfo);
						/**2、初始化商品图文详情，在detail_imgText_info.jsp中**/
						initProductImgTextInfo(data.productInfoDetail);
						/**3、初始化商品组图信息，在images_info.jsp中**/
						initProductImgInfo(data.productImgList);
						/**4、初始化商品扩展属性信息，在attribute_info.jsp中**/
						initProductAttributeInfo(data.productInfo.productTypeId,data.productAttributeIndexList);
						/**5、初始化商品参数及参数组信息，在parameter_info.jsp中**/
						initProductParameterInfo(data.productInfo.productTypeId,data.productInfo.productParametersValue);
						/**6、初始化商品规格及规格值信息，在specification_info.jsp中**/
						initProductSpecificationInfo(data.productInfo.productId,data.shopProductSpecificationValueList);
					}
				});
			}else{
				$("#btn_edit").attr("data-target",""); /**没有选中记录不可打开模态框**/
				showMsg("请选择一行记录！");
			}
		}
    </shiro:hasPermission>

    /**切换选项卡**/
    function changeTab(tabId){
		$(".tab-pane").hide();
		$("#"+tabId).show();
    }

    /**提交商品表单信息**/
    function submitForProductInfo(){
       var flag= validateSubmitFeild();
        /** 开启验证**/
        form.data('bootstrapValidator').validate().validate();
        isValid=form.data('bootstrapValidator').isValid();
        if(isValid&&flag){  /** 验证通过后提交表单**/
            var options = {
                url: form.attr("action"),
                type : "post",
                dataType:"json",
                success : function(data) {
                    if(data.success==true){
                        $("#addOrEditBtn").click();/**控制表单提交后不关闭店铺列表模态框**/
                        $("#tt").bootstrapTable('refresh');
                        showMsg("保存成功！");
                    }else{
                        showMsg("保存失败！");
                    }
                }
            };
            form.ajaxSubmit(options);
        }else{ /** 验证失败了直接返回 **/
            return false;
        }
	}

    /** 点击其他标签的时候进行基本信息的验证 **/
	function validateSubmitFeild(){
        /** 检测规格是否有重复**/
        var flag = true;
        var specifications = [];
        var speciArray = [];
        if($("#specifications").val()==""){
            $("#specificationProductTable").find("tr:gt(0)").each(function (i) {
                var specificationValues = $(this).find("select").serialize();
                if (specificationValues != "") {
                    var inputparam = $(this).find("input").serialize();
                    if ($.inArray(specificationValues, speciArray) >= 0) {
                        showMsg("商品规格重复!");
                        flag = false;
                    } else {
                        speciArray.push(specificationValues);
                        specifications.push(specificationValues + "&" + inputparam);
                    }
                }
            });
            if (flag == true) {/** 检测规格重复通过**/
            $("#specifications").val(specifications);
            }
		}

        var marketPrice = $("#marketPrice").val();
        var salesPrice = $("#salesPrice").val();
        if ($("#category_level3").val() == "") {
            showMsg("基本信息，商品分类必选!");
            flag = false;
        }else if ($("#deliveryAddressCities").val() == "") {
            showMsg("基本信息，发货地必填!");
            flag = false;
        } else if ($("#brand_select").val() == "") {
            showMsg("基本信息，品牌必选!");
            flag = false;
        } else if ($("#measuringUnitName").val() == "") {
            showMsg("基本信息，计量单位必选!");
            flag = false;
        } else if ($("#productName").val() == "") {
            showMsg("基本信息，商品名称必填!");
            flag = false;
        } else if ($("#shopProCategoryId").val() == "") {
            showMsg("基本信息，店铺商品内部分类必选!");
            flag = false;
        } else if ($("#productCode").val() == "") {
            showMsg("基本信息，商品编号必填!");
            flag = false;
        } else if (parseInt(marketPrice) < parseInt(salesPrice)) {
            showMsg("基本信息，售价应小于等于市场价!");
            flag = false;
        } else if ($("#marketPrice").val() == "") {
            showMsg("基本信息，市场价格必填!");
            flag = false;
        } else if ($("#salesPrice").val() == "") {
            showMsg("基本信息，销售价格必填!");
            flag = false;
        } else if ($("#storeNumber").val() == "") {
            showMsg("基本信息，库存必填!");
            flag = false;
        } else if ($("#upRatio").val() == "") {
            showMsg("基本信息，一级返利比例必填!");
            flag = false;
        } else if ($("#secRatio").val() == "") {
            showMsg("基本信息，二级返利比例必填!");
            flag = false;
        } else if ($("#thiRatio").val() == "") {
            showMsg("基本信息，三级返利比例必填!");
            flag = false;
        } /*else if ($("#giveAwayCoinNumber").val() == "") {
            showMsg("基本信息，赠送购买者金币必填!");
            flag = false;
        } */else if ($("#weight").val() == "") {
            showMsg("基本信息，商品重量必填!");
            flag = false;
        } else if ($("#packingSpecifications").val() == "") {
            showMsg("基本信息，包装规格必填!");
            flag = false;
        } else if ($("#imageUrl_1").val() == "") {
            showMsg("基本信息，商品Logo必上传!");
            flag = false;
        }
        return flag;
	}

</script>

<!--添加编辑模态框（Modal） -->
<div class="modal fade" id="addOrEditModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
	<div class="modal-dialog" style="width:88%">
		<div class="modal-content">
			<div class="modal-header">
				<button id="addOrEditBtn" type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
				<h5 class="modal-title" id="addOrEditModalLabel"></h5>
			</div>

			<!--添加商品开始-->
			<div class="modal-body">
				<ul id="myTab" class="nav nav-tabs">
					<li id="basicLi" class="active"><a onclick="changeTab('basicTab')"  href="#basicTab" data-toggle="tab">基本信息</a></li>
					<li><a onclick="changeTab('detailTab')" href="#detailTab" data-toggle="tab">图文详情</a></li>
					<li><a onclick="changeTab('imagesTab')" href="#imagesTab" data-toggle="tab">组图信息</a></li>
					<li><a onclick="changeTab('attrsTab')" href="#attrsTab" data-toggle="tab">扩展属性</a></li>
					<li><a onclick="changeTab('paramsTab')" href="#paramsTab" data-toggle="tab">规格参数</a></li>
					<li style="border-radius:0px 3px 0px 0px;"><a onclick="changeTab('specificationsTab')" href="#specificationsTab" data-toggle="tab">商品规格</a></li>
				</ul>
				<div id="myTabContent" class="tab-content" style="margin-top: 15px;">
					<form id="form1"  method="post" action="${basePath}/back/shopProduct/saveOrUpdateShopInfoProduct.sjson">
						<input type="hidden" id="productId" name="productId" value=""/>
						<input type="hidden" id="shopInfoId" name="shopInfoId" value=""/>
						<input type="hidden" id="productTypeId" name="productTypeId" value=""/>
						<input type="hidden" id="shopInfoProductType" name="shopInfoProductType" value="${shopInfoProductType}"/>
						<input type="hidden" id="specifications" name="specifications" value="0"/>
						<div class="tab-pane fade in active" id="basicTab">
							<!-- 商品基本信息 -->
							<jsp:include page="basic_info.jsp"/>
						</div>
						<div class="tab-pane fade" id="detailTab" style="display: none;">
							<!-- 商品图文详情 -->
							<jsp:include page="imgText_detail_info.jsp"/>
						</div>
						<div class="tab-pane fade" id="imagesTab" style="display: none;">
							<!-- 商品组图信息 -->
							<jsp:include page="images_info.jsp"/>
						</div>
						<div class="tab-pane fade" id="attrsTab" style="display: none;">
							<!-- 商品扩展属性信息 -->
							<jsp:include page="attribute_info.jsp"/>
						</div>
						<div class="tab-pane fade" id="paramsTab" style="display: none;">
							<!-- 规格参数 -->
							<jsp:include page="parameter_info.jsp"/>
						</div>
						<div class="tab-pane fade" id="specificationsTab" style="display: none;">
							<!-- 商品规格 -->
							<jsp:include page="specification_info.jsp"/>
						</div>
					</form>
				</div>
			</div>
			<!--添加商品结束-->

			<div class="modal-footer">
				<button type="button" id="saveBtn" class="btn btn-primary"  onclick="submitForProductInfo()">保存</button>
				<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
			</div>
		</div><!-- /.modal-content -->
	</div><!-- /.modal -->
</div>
